﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 字符串
{
    class Program
    {
        static void Main(string[] args)
        {
            // 字符串是引用类型，他存放在常量区当中
            string str = "abc";
            // 是字符数组
            Console.WriteLine(str.Length);
            char c = str[1];
            Console.WriteLine(c);
            // 长度不可改变，是只读的属性
            str = "abcd";

            // 生成了对象，也分配了空间
            string s1 = "";
            string s2 = string.Empty;
            // 没有生成对象
            string s3 = null;

            // 转义字符

            //字符串的处理方法
            string ss1 = "acdd";
            string ss2 = "bbce";
            // Application Program Interface
            // 比较
            int i = String.Compare(ss1, 1, ss2, 2, 1);
            Console.WriteLine(i);
            // 连接
            // +在这里是连字符
            Console.WriteLine("第" + 2 + "次计算的数字是" + 4); //
            Console.WriteLine("第{0}次运算的数字是{1}", 2, 4);
            //string ss3 = String.Concat(ss1, ss2);
            string ss3 = ss1 + ss2 + "今天好精神";
            Console.WriteLine(ss3);

            // 拷贝
            string ss4 = String.Copy(ss1);
            Console.WriteLine(ss4);

            // 比较是否相同
            bool b = String.Equals(ss1, ss2);
            Console.WriteLine(b);

            // 非静态方法的比较
            int j = ss1.CompareTo(ss2);
            // 查找字符是否包含
            bool isContains = ss1.Contains("dc");
            Console.WriteLine("isContains" + isContains);

            // 比较字符串的结尾

            // 判断子字符串在字符串当中的索引
            Console.WriteLine(ss1.IndexOf("d"));

            // 插入、删除、替换等方法，形成的一个新的字符串，对以前的字符串没有影响
            string sss = ss1.Remove(1, 2);
            Console.WriteLine(sss);

            string ssss = ss1.Replace("dd", "ff");
            Console.WriteLine(ssss);
            string s5 = ss1.Insert(1, "cvb");
            Console.WriteLine(s5);
            Console.WriteLine(ss1);

            // 把字符串转换成字符数组
            string s = "qwertyuiop";
            //char[] ch = new char[s.Length];
            char[] ch = s.ToArray();
            foreach (char item in ch)
            {
                Console.WriteLine(item);
            }

            // 切割字符串
            string strSplit = "ab,cd,ef,gh,i,asd,hy,ui";
            string[] strs1 = strSplit.Split('h');
            foreach (var item in strs1)
            {
                Console.WriteLine(item);
            }

        }
    }
}
